/*
catch 方式给它之前的整个 promise 链条注册失败回调
*/
// Promise.resolve(1).then(res => {
//   console.log(res);
// }).catch(err => {
//   console.log('--------->', err);
// }).then(() => {
//   return new Promise((resolve, reject) => {
//     setTimeout(() => {
//       throw new Error('啊呀，挂了')
//     }, 3000);
//   })
// })

setTimeout(() => {
  console.log(1);
});

let a = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log(2);
    resolve(b);
    console.log(3);
  }, 1000);
})

let b = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log(4);
    reject('error');
    console.log(5);
  }, 2000);
})

a.then(() =>{
  console.log(6);
}).catch(() =>{
  console.log(7);
})

// 1 2 3 4 5 7